import { createI18n } from 'vue-i18n'

// 动态加载语言文件的函数
async function loadLanguageMessages() {
  try {
    const [enResponse, zhResponse] = await Promise.all([
      fetch('/file/metaMain/static/language/language_en.json'),
      fetch('/file/metaMain/static/language/language_zh.json'),
    ])

    const en = await enResponse.json()
    const zhCN = await zhResponse.json()

    return {
      en,
      zh: zhCN,
    }
  } catch (error) {
    console.error('Failed to load language files:', error)
    // 返回默认的空对象，避免应用崩溃
    return {
      en: {},
      zh: {},
    }
  }
}

// 异步初始化 i18n
export async function initI18n() {
  const messages = await loadLanguageMessages()

  var language = '' // json数据
  if (sessionStorage.langSort && sessionStorage.language) {
    // 如果有数据，则需要从session中取
    language = JSON.parse(sessionStorage.language)
  } else {
    // 没有数据的话，直接走本地的中文翻译
    if (sessionStorage.langSort == 'en') {
      language = 'en'
    } else {
      // language = language_zh
      language = 'en'
    }
  }

  console.log(language)

  const i18n = createI18n({
    legacy: false,
    locale: language, // 自动检测浏览器语言
    fallbackLocale: 'en',
    messages,
    globalInjection: true, // 全局注入 $t 函数
    silentTranslationWarn: true, // 禁止警告
  })

  return i18n
}

// 为了向后兼容，保留默认导出（但需要异步初始化）
export default null
